package game.model;

import java.util.HashSet;
import java.util.Set;

/**
 * Clase que representa una pared en el tablero.
 *
 */

public class Pared extends Componente {

	/**
	 * Constructor de la clase Pared.
	 */
	
	public Pared() {
		setImagen(6);
	}
	
	@Override
	public Set<Rayo> getSalida(Rayo entrada){
		return new HashSet<Rayo>();
	}
	
	@Override
	public Set<Rayo> getSalida(Rayo entrada,Set<Rayo> anterior){
		
		Set<Rayo> auxiliarNuevo = new HashSet<Rayo>();
		Set<Rayo> auxiliarAnterior = new HashSet<Rayo>();
		
		
		Rayo nuevo = new Rayo(entrada.getColor(), entrada.getOrientacion());
		nuevo.setImagen(9);
		anterior.add(nuevo);
		auxiliarNuevo.add(nuevo);
		
		auxiliarAnterior.addAll(anterior);
		
		auxiliarNuevo.addAll(getSalida(entrada));
		
		for(Rayo rayoAnt : auxiliarAnterior){
			for(Rayo rayoNuevo : auxiliarNuevo){
				if(rayoAnt.getOrientacion() == rayoNuevo.getOrientacion() && !rayoAnt.mismoColor(rayoNuevo)){
					anterior.remove(rayoAnt);
				}
			}
		}
		
		anterior.addAll(auxiliarNuevo);
		
		return getSalida(entrada);
	}
	
	@Override
	public String salvarEstado(String ubicacion) {
		return ubicacion + "6" + "," + "0" + "," + "0" + "," + "0" + "," + "0";
	}

}
